// 引入 socket.io 设置模块
const socketIOSer = require('./socketIO/CreateSocket');
// 引入应用启动任务模块
const initTask = require('../bootup/tasks');
// 引入创建目录的模块
const createDirectory = require('./createDirectory');

const log = require('../server/libs/SysLog/OutPut');

/**
 * 初始化应用程序。
 * 这包括设置 socket.io，执行启动任务，以及创建必要的目录结构。
 *
 * @param {http.Server} httpServer - Koa 应用关联的 HTTP 服务器实例。
 */
async function init(httpServer) {
    // 设置 socket.io 与 HTTP 服务器的关联
    await socketIOSer(httpServer);

    // 执行定义的启动任务
    initTask();

    // 创建应用程序运行所需的目录结构
    createDirectory();

    // 输出初始化完成的日志
    log.info('初始化已完成......');
}

// 导出 init 函数以供其他模块使用
module.exports = init;
